package com.creative.user.service;

import com.creative.core.page.TableDataInfo;
import com.creative.user.domain.UserInfo;
import com.creative.user.domain.dto.SessionWebDto;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author Ling
 * @description 用户信息表
 * @date 2024-11-12
 */
@Transactional(rollbackFor = Exception.class)
public interface UserInfoService {

    /**
     * 新增
     */
    public Integer insert(UserInfo userInfo);

    /**
     * 删除
     */
    public Integer delete(String userId);

    /**
     * 批量删除
     */

    public Integer deleteBatch(String[] ids);

    /**
     * 批量导出
     *
     * @author ling
     * @date 2025/02/27
     **/
    public List<UserInfo> exportBatch(String[] ids);

    /**
     * 更新
     */
    public Integer update(UserInfo userInfo);

    /**
     * 根据主键 id 查询
     */
    public UserInfo selectById(String userId);

    /**
     * 分页查询
     */
    public TableDataInfo selectUserInfoList(UserInfo userInfo);

    UserInfo selectByNameAndPassword(String nickName, String password);

    UserInfo selectByEmail(String email);

    public Integer updateAvatar(String avatar, String name);

    Integer updatePassword(String password, String userId);


    UserInfo selectByWXOpenId(String wxOpenId);

    /**
     * 统计用户数量
     *
     * @return {@link Long }
     * @author ling
     * @date 2025/04/28
     */
    Long calculateUser() ;
}